chore: close signups and checkout, show a "taking a break" notice - #612
Merged
Conversation
humanlog.io is paused (https://www.webscale.lol/blog/humanlog-retro): the log parser is being open-sourced and the hosted observability tool is moving to minitape. People who signed up to try the app were given a $0/month "Free" plan and are now emailing to have it turned off, so the front door needs to close. The real switch is in src/lib/auth.ts. The shared better-auth config is spread into ours, so the overrides have to come after that spread and merge into it rather than replace it, or the callbacks it carries go with them. Disabling emailAndPassword closes /api/auth/sign-in/email and /api/auth/sign-up/email; emptying socialProviders removes the GitHub and Google routes. That last part matters: signIn.social auto-creates an account for any unknown identity, and those buttons render on the sign-IN page too, so closing /sign-up alone would not have stopped new accounts. The sign-in and sign-up layouts now render the notice instead of gating their children behind the release_auth_temp PostHog flag, which covers the nested routes (email-verify, reset-password, ...) in one edit each. Pricing, purchase, create-org, onboarding and env-new render it too, so no live Stripe Elements checkout is reachable. The pages underneath are left in the tree for whenever the lights come back on. The notice reuses the getlaunchlist form as a minitape launch list, and the previously-unmounted DismissibleBanner as a site-wide notice. The hero CTA drops its signup framing but keeps the installer, since the CLI still works locally. Verified against a dev server: sign-up/email and sign-in/email return 400, social returns 404, and all seven auth/checkout routes render the notice with no js.stripe.com. The backend refuses account and session creation independently. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YTkqPnYuuk4wirAoZAeuu6
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
humanlog.io is paused — see the retro. People who signed up to try the app were silently given a $0/month "Free" subscription and are now emailing to have it turned off, so the front door needs to close.
What this does
Replaces sign-in, sign-up and every checkout path with a "humanlog.io is taking a break" notice that links to the retro and collects emails for a minitape launch list.
/sign-up,/sign-up/*/sign-in,/sign-in/reset-password/*/pricing,/user/purchase/create-org,/onboarding/*,/[org]/env-newThe pages underneath are left in the tree for whenever the lights come back on.
The part that actually matters
src/lib/auth.tsis the real switch. Two things worth reviewing carefully:emailAndPassword: {…}would droprequireEmailVerificationandsendResetPassword.socialProvidersis not optional.signIn.socialauto-creates an account for any unknown GitHub/Google identity, and those buttons render on the sign-in page too — so closing/sign-upalone would not have stopped new accounts.The sign-in/sign-up layouts now render the notice unconditionally instead of gating children behind the
release_auth_tempPostHog flag, so the nested routes are covered by one edit each and the behaviour no longer depends on PostHog being reachable.Verified against a dev server
POST /api/auth/sign-up/emailEMAIL_AND_PASSWORD_SIGN_UP_IS_NOT_ENABLEDPOST /api/auth/sign-in/emailEMAIL_AND_PASSWORD_IS_NOT_ENABLEDPOST /api/auth/sign-in/socialPROVIDER_NOT_FOUNDAll seven routes above render the notice with the retro link and no
js.stripe.com.npm run build,tsc --noEmitandnext lintpass;npm run fmtis a no-op.Reuse rather than new code
CloudBetaSignup(getlaunchlistMJv5ZO), re-worded for minitape and no longer behindexperiment_cloud_waitlist_temp.DismissibleBanner, which already existed but was mounted nowhere.not-found.tsx.The hero CTA drops its signup framing but keeps the installer — the CLI still works locally and is being open-sourced.
Related
The backend refuses account, session and subscription creation independently — see the companion PR in
apisvc. The 79 leftover free Stripe subscriptions have already been cancelled.🤖 Generated with Claude Code
https://claude.ai/code/session_01YTkqPnYuuk4wirAoZAeuu6